package com.chinatechstar.decis.dto;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author Rei
 * @date 2021/7/27
 */
public class GeneralImplEffectDTO implements Serializable {
    private static final long serialVersionUID = -8750998124013004458L;

    /**
     * 综合效果评价-单井注气吞吐实施效果月统计表主键ID
     */
    private Long id;

    /**
     * 关联注气吞吐实施ID
     */
    private Long implId;

    /**
     * 关联井ID
     */
    private Long wellId;

    /**
     * 关联井名称
     */
    private String wellName;

    /**
     * 关联区块ID
     */
    private Long areaId;

    /**
     * 关联区块名称
     */
    private String areaName;

    /**
     * 关联单位ID
     */
    private Long orgId;

    /**
     * 关联单位名称
     */
    private String orgName;

    /**
     * 实施注气吞吐的油井恢复生产后，1个月内实现日产油量提高20%以上，或者含水率降低5个百分点以上，即认为该井实施注气吞吐措施有效（1-有效；0-无效；null-待定）
     */
    private Boolean isEffective;

    /**
     * 有效天数
     */
    private Integer validityTime;

    /**
     * 是否处于有效期（1-有效；0-无效）
     */
    private Boolean isValidity;

    /**
     * 当月增油量(t)
     */
    private BigDecimal periodIncrOil;

    /**
     * 当月降水量(m3)
     */
    private BigDecimal periodDecrWater;

    /**
     * 实施注气吞吐油井的气体注入量，单位为吨(t)
     */
    private BigDecimal injectVolume;

    /**
     * 增油换油率
     */
    private BigDecimal oilChangeRate;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getImplId() {
        return implId;
    }

    public void setImplId(Long implId) {
        this.implId = implId;
    }

    public Long getWellId() {
        return wellId;
    }

    public void setWellId(Long wellId) {
        this.wellId = wellId;
    }

    public String getWellName() {
        return wellName;
    }

    public void setWellName(String wellName) {
        this.wellName = wellName;
    }

    public Long getAreaId() {
        return areaId;
    }

    public void setAreaId(Long areaId) {
        this.areaId = areaId;
    }

    public String getAreaName() {
        return areaName;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }

    public String getOrgName() {
        return orgName;
    }

    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }

    public Boolean getEffective() {
        return isEffective;
    }

    public void setEffective(Boolean effective) {
        isEffective = effective;
    }

    public Integer getValidityTime() {
        return validityTime;
    }

    public void setValidityTime(Integer validityTime) {
        this.validityTime = validityTime;
    }

    public Boolean getValidity() {
        return isValidity;
    }

    public void setValidity(Boolean validity) {
        isValidity = validity;
    }

    public BigDecimal getPeriodIncrOil() {
        return periodIncrOil;
    }

    public void setPeriodIncrOil(BigDecimal periodIncrOil) {
        this.periodIncrOil = periodIncrOil;
    }

    public BigDecimal getPeriodDecrWater() {
        return periodDecrWater;
    }

    public void setPeriodDecrWater(BigDecimal periodDecrWater) {
        this.periodDecrWater = periodDecrWater;
    }

    public BigDecimal getInjectVolume() {
        return injectVolume;
    }

    public void setInjectVolume(BigDecimal injectVolume) {
        this.injectVolume = injectVolume;
    }

    public BigDecimal getOilChangeRate() {
        return oilChangeRate;
    }

    public void setOilChangeRate(BigDecimal oilChangeRate) {
        this.oilChangeRate = oilChangeRate;
    }

    @Override
    public boolean equals(Object obj) {
        return EqualsBuilder.reflectionEquals(obj, this);
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this);
    }

    @Override
    public String toString() {
        return ReflectionToStringBuilder.toString(this);
    }
}
